package com.naiterui.ehp.bs.ds.modules.order.service;

import java.io.IOException;
import java.util.List;

import org.springframework.web.multipart.MultipartFile;

import com.baomidou.mybatisplus.extension.service.IService;
import com.naiterui.ehp.bp.support.exception.BusinessException;
import com.naiterui.ehp.bs.ds.common.utils.PageVO;
import com.naiterui.ehp.bs.ds.common.vo.PageParamsVO;
import com.naiterui.ehp.bs.ds.modules.order.entity.Order;
import com.naiterui.ehp.bs.ds.modules.order.vo.LogisticsCompanyVO;
import com.naiterui.ehp.bs.ds.modules.order.vo.OrderDetailVO;
import com.naiterui.ehp.bs.ds.modules.order.vo.OrderVO;
import com.naiterui.ehp.bs.ds.modules.order.vo.PrintOrderDetailVO;
import com.naiterui.ehp.bs.ds.modules.order.vo.StatisticalVO;

public interface IOrderService extends IService<Order> {

    PageVO<OrderVO> queryPage(PageParamsVO pageParamsVO, OrderVO order);

    /**
     * 统计信息
     */
    StatisticalVO getStatisticalVO();

    /**
     * 获取订单详情
     */
    OrderDetailVO getOrderDetails(Long orderId);

    /**
     * 获取快递公司
     */
    List<LogisticsCompanyVO> logisticsCompanyList();

    /**
     * 发货
     */
    void deliveryFile(MultipartFile file) throws BusinessException;

    /**
     * 导出订单
     */
    byte[] exportOrder(PageParamsVO pageParamsVO, OrderVO order) throws IOException;

    /**
     * 打印面单
     */
    PrintOrderDetailVO printOrder(Long orderId);

    /**
     * @return
     */
    Boolean tip();

}
